Method and system for accurately measuring and modeling a sports instrument swinging motion

ABSTRACT

Techniques for measuring and modeling club-like sports instrument inertial motion sensing signals are disclosed. The disclosed method and system generate corrected output of a motion sensing circuit, which circuit includes an inertial measurement unit and associates with a club-like sports instrument. One aspect of the disclosed subject matter includes a method and system for isolating analysis positions of a golf swing, which analysis positions facilitate measuring and modeling the swinging motion. Another aspect of the disclosed subject matter includes a method and system for correcting golf swing measurement errors for more accurately measuring and modeling the swinging motion. Yet another aspect of the disclosed subject matter provides a method and system for determining an impact position of a swinging sports instrument.

CROSS-REFERENCE TO RELATED PATENT APPLICATIONS

This patent application is a continuation in part and claims the benefit of U.S. patent application Ser. No. 10/810,168 filed on Mar. 26, 2004, and claims the benefit of U.S. Provisional Patent Applications Ser. Nos. 60/591,636; 60/640,632, and 60/640,634.

FIELD

This disclosure pertains generally to a sports training system and, more particularly, to a method and system for measuring and modeling sports instrument inertial motion sensing signals an intelligent sports club, bat or racquet that takes quantitative measurements of a swing for real-time feedback and subsequent analysis and display.

BACKGROUND OF THE DISCLOSED SUBJECT MATTER

Various devices exist to assist golfers' efforts to improve their swing. One category of devices involves systems of restraints on the player's body or on the sports instrument to force the player into a perfect swing. Restraint based systems operate on the premise that by forcing a player into a given stance or swing pattern, the player will inculcate the lesson as a form of muscle memory that can then be employed while golfing with a standard club. However, a player's natural tendency is to resist the restraint system and thereby learn a stance or swing pattern predicated on the presence of the restraint system. In the absence of the restraint system, the player's new stance or swing pattern is incorrect.

Another category of devices is electronic in nature and entirely external to the golf club, typically involving some type of swing motion capture. These systems typically employ arrays of sensors and cameras configured around the player. Visualization and analysis of individual frames as well as slow motion animation of the golf swing is difficult with conventional video analysis because of the high frame rates required. Further, high frame rates require large amounts of data storage and processing power. In some instances, the players must also affix indicators or sensors on their person and/or their club. The inconvenience and complexity of these externally configured systems prevent this technology category from gaining widespread appeal in the golfing community. In addition, because of the nature of these systems, golfers are not able to play a round of golf while using these systems.

A class of electronic devices exists that requires players to mount the devices on the outside of the shaft of the sports instrument. The weight of these devices changes the sports instrument's swing characteristics and renders swing lessons less meaningful. The externally mounted devices significantly change the look of the sports instrument and may loosen or move on the shaft. In addition, such devices may distort a swing, because of added air resistance, and possibly due to interference with normal usage. For example, such a device mounted in the middle or at the base of a golf grip could cause certain golfers to unduly and detrimentally struggle with the device, instead of improving their swing.

In U.S. Pat. No. 6,048,324, issued to Socci et al., the specification discloses headgear for detecting head motion and providing an indication of head movement. An object of this disclosure is to provide players with a device to teach proper golf ball striking in a variety of sports including golf by tracking head motion. Devices designed to monitor exclusively monitor a subset of the player's motions do not adequately capture the various motions required for a human to hit a golf ball. Therefore, these devices cannot precisely predict the path of the golf club during a swing.

Lastly, in U.S. Pat. No. 6,648,729, issued to Lee et al., a device is disclosed to capture and analyze data related to a golf club or sports instrument swing. That device includes electronic components in the distal end of the sports instrument shaft with additional circuitry in the head of the sports instrument. The presence of components in the modified golf club head degrades the players' experience by providing a different tone at golf ball strike. Furthermore, by locating critical components in the club head, the region of the sports instrument, which experiences the highest rates of acceleration, the device, is more susceptible to mechanical degradation and failure. The sports instrument requires a wired link to download swing data to a computing device. This wired link is cumbersome for players. Finally, the sports instrument provides feedback to the player regarding their swing only after data is downloaded to a computing device. This lack of real-time feedback, during the course of the swing, provides a less meaningful learning experience to the player.

Accordingly, there is need for a sports training system that uses a lightweight, normally formed and used golf club or sports instrument to provide real-time feedback, during the course of a swing. This would significantly enhance the sports learning experience by measuring and modeling the swinging motion, e.g., the golf club swing. With any of these and other systems designed to measure and model a sports instrument swinging motion, there is the need for accurate data from which a player may learn of his motions and improve his performance. In particular, there is the need for a method and system for isolating analysis positions of the swinging motion. By accurately providing the analysis positions, better measuring and modeling of the swinging motion could result. Still, a need exists for a method and system that reliably determines the point at which the swinging sports instrument impacts an object, such as a golf ball or baseball. Moreover, there is the need for a method and system that corrects any golf swing measurement errors that may occur in such systems for measuring and modeling the swinging motion.

SUMMARY

Techniques for accurately measuring and modeling a sports instrument swinging motion are disclosed. One aspect of the disclosed subject matter includes a method and system for isolating analysis positions of a golf swing, which analysis positions facilitate measuring and modeling the swinging motion. Another aspect of the disclosed subject matter includes a method and system for correcting golf swing measurement errors for more accurately measuring and modeling the swinging motion. Yet another aspect of the disclosed subject matter provides a method and system for determining an impact position of a swinging sports instrument.

The disclosed subject matter, including a method and system for isolating analysis positions of a golf swing, provides for analyzing a swinging motion of a sports instrument. The swinging motion occurs for contacting an object and the sports instrument includes an embedded inertial measurement unit. The method and system generate a plurality of signals from the inertial measurement unit. The plurality of signals includes a plurality of gravity signals and a plurality of acceleration signals. The disclosed subject matter receives the plurality signals from the inertial measurement unit in a signal processing circuit. The signal processing circuit analyzes the plurality of gravity signals and the plurality of acceleration signals. From the analysis of at least the plurality of gravity signals, the disclosed subject matter determines the point at which the sports instrument is at an at-address position relative to the object. From the analysis of at least plurality of acceleration signals, the disclosed subject matter determines when the sports instrument is at a top-of-swing position relative to the object. From the analysis of the signals from the inertial measurement unit, the disclosed subject matter determines when the sports instrument is in a swinging motion. Furthermore, from the analysis of at least the plurality of accelerometer signals the disclosed subject matter determines when the sports instrument is at an impact point at which the sports instrument contacts the object.

The disclosed subject matter, which includes a method and system for determining an impact position at which the sports instrument impacts an object, generates an acceleration measurements stream from the inertial measurement unit. The acceleration measurements stream includes a plurality of acceleration signals from the inertial measurement unit. The plurality of acceleration signals are associated with movement of the sports instrument. Each of the plurality of acceleration signals corresponds to a movement of the sports instrument. The disclosed subject matter receives the acceleration measurements stream in a signal processing circuit. The signal processing circuit relates the acceleration measurements stream to movement of the sports instrument. The disclosed subject matter furthermore determines the presence of a shock vibration measurement within the acceleration measurements stream. Then, inertial measurement unit relates the shock vibration to the sports instrument impacting the object, e.g., the golf ball. In another aspect of the disclosed subject matter, impact may be inferred from the signals themselves, i.e., by means of noticing a sudden change in measurements over an interval. This may be especially in the event that sensors are padded against vibration.

The disclosed subject matter further includes a method and system for correcting swing analysis data deriving from an inertial measurement unit that senses the motion associated with a sports instrument. This aspect of the disclosure generates a plurality of signals from the inertial measurement unit in response to movement of the sports instrument. The plurality of signals includes a plurality of orientation measurements and a plurality of acceleration measurements. The disclosed subject matter corrects the orientation measurements in response to rotation of the sports instrument occurring when the sports instrument impacts the object. The disclosed subject matter, furthermore, corrects acceleration measurements to remove inaccuracies deriving from the orientation of at least one accelerometer and the orientation of at least one gyroscope differing from the point at which the sports instrument contacts the object.

These and other aspects of the disclosed subject matter, as well as additional novel features, will be apparent from the description provided herein. The intent of this summary is not to be a comprehensive description of the claimed subject matter, but rather to provide a short overview of some of the subject matter's functionality. Other systems, methods, features, and advantages here provided will become apparent to one with skill in the art upon examination of the following FIGUREs and detailed description. It is intended that all such additional systems, methods, features and advantages that are included within this description, be within the scope of the accompanying claims.

BRIEF DESCRIPTION OF THE FIGURES

For a more complete understanding of the present disclosure, and the advantages thereof, reference is now made to the following brief descriptions taken in conjunction with the accompanying drawings, in which like reference numerals indicate like features.

FIG. 1 shows selected aspects of an instrumented golf club system which may use the disclosed subject matter;

FIG. 2 shows a partially exploded view of an instrument golf club (IGC) which may incorporate an inertial measurement unit (IMU) consistent with the teachings of the disclosed subject matter;

FIG. 3 shows a partially cut-away view of an IGC depicting a printed circuit board (PCB) capable of containing the circuitry and instructions for one embodiment of the disclosed subject matter;

FIG. 4 shows an exploded view of the top portion of the IGC grip;

FIG. 5 shows three views of an IMU incorporating the claimed subject matter;

FIG. 6 shows a three-dimensional frame of reference corresponding to the IGC with respect to a three-dimensional frame of reference corresponding to the world;

FIG. 7 shows an exemplary swing path data model used to store information collected by the IGC;

FIG. 8 shows selected functional and demonstrative views of an exemplary analysis graphical player interface (GUI) for demonstrating the results of the claimed subject matter;

FIG. 9 is a flowchart of a overall data collection process associated with the IGC of the disclosed subject matter;

FIG. 10 is a flowchart of the process swing functions performed during an exemplary operation of a data collection process of FIG. 9;

FIG. 11 shows a flowchart of the “at address” determination process of the present disclosure; and

FIGS. 12 and 13 provide flowcharts relating to the impact position determination process of the present disclosure.

DETAILED DESCRIPTION OF THE FIGURES

Although described with particular reference to a golf club, the claimed subject matter for measuring and modeling accelerometer measurements and gyroscopic measurements of an inertial measurement unit associated with sports instrument may find beneficial use in many types of devices. FIG. 1 shows selected aspects of an instrumented golf training system 10, which may use the disclosed subject matter. In FIG. 1, instrumented golf training system 10, processes measured golf club swing data 12 on computer 14. A player may control computer 14 using keyboard 16 to communicate with instrumented golf IGC 18 and achieve a highly interactive process that may be formed and may operate as here disclosed.

The claimed subject matter for modeling the golf club swinging motion and performing the measurement corrections here claimed applies to all types of golf clubs, including irons, fairway woods, wedges, and putters. Another type of sports device that may benefit from the claimed subject matter is a racquet. All racquet sports include tennis, racquetball, squash, and badminton racquet. With minor software modifications to the disclosed embodiment, the advantages of real-time swing feedback, swing data storage, transmission, and advanced analysis can be extended to the players of racquet sports. Further, additional embodiments may include bats such as those used in baseball, softball, t-ball, cricket, polo, hockey, etc. Yet more generally, the disclosed subject matter may apply to any sport using an instrument to strike another instrument, which may even include a leg (e.g., as in kicking a soccer ball or football) or an arm (e.g., as in boxing or playing handball). With minor software modifications to the disclosed embodiment, the advantages of real-time swing feedback, swing data storage, transmission, and advanced analysis could be extended to the players of bat sports.

An additional embodiment of the present correction process may be adapted for use with a video game controller or computer game controller. Real time data transmission from an instrumented game controller allows for real-life swing data to be directly fed into any sports video or computer game. In addition, the portions of the disclosed subject matter can be instrumented in software, hardware, or a combination of software and hardware. The hardware portion can be instrumented using specialized logic; the software portion can be stored in a memory and executed by a suitable instruction execution system such as a microprocessor, tablet personal computer (PC), or desktop PC.

In addition, the concepts of an IMU may also be employed in a system associated with a telecommunications system for the purpose of communicating between the sports instrument and a remote site. As such, the remote site may receive data relating to the movement of the sports instrument. Such data may be used to provide a more accurate evaluation and a more timely player coaching from the remote location. For example, remote viewing could be used for evaluation/coaching, as well as for displaying the swing. In particular, applications such as viewing a golf shot where there are no cameras exist on the golf course, or with computer game applications, such as displaying an actual swing to a remote viewer/competitor. Moreover, a coach may produce a make a demonstration swing for use by a student using the method and system of the disclosed subject matter

Several exemplary objects and advantages of an electronic sports instrument with which the measurement correction and modeling process and associated system of present embodiment may cooperate are described in U.S. patent application Ser. No. 10/810,168 filed on Mar. 26, 2004, which is entitled “METHOD AND SYSTEM FOR GOLF SWING ANALYSIS AND TRAINING” and is commonly assigned with this present application. Such objects and related features and benefits are here expressly incorporated by reference. Other aspects, objectives, and advantages of the claimed subject matter will become more apparent from the remainder of the detailed description when taken in conjunction with the accompanying FIGUREs.

The following terms and definitions are herein provided for the purpose of illustration and not for limitation. There may be other equivalent definitions for the terms herein provided and any used for explanatory or demonstrative purposes. Accordingly, it is only by reference to appended claims that the scope of the present disclosure and the various embodiments herein is and can be limited. However, because of their beneficial ability to establish the novel concepts of the present disclosure they are here provided.

For purposes of the disclosed subject matter, the term “inertial measurement unit” or “IMU” ascribes to one or more sensor groupings of nominally three accelerometers and nominally three gyroscopes. Each of such groupings align along the same set of mutually perpendicular axes, however, such sensors may align to one of the three sensors along an axis that is not mutually perpendicular or may align along a different set of coordinate axes. Ultimately, the groupings of accelerometers, gyroscopes, or other sensors all cooperate to provide appropriate sensor readings to establish IMU movement detection in a three-dimensional coordinate axis system.

Moreover, devices different from accelerometers and/or gyroscopes may be used to obtain the desired measurements of acceleration and changes in inertial measurements. The disclosed subject matter, therefore, provides an IMU for use in measuring movement of a sports instrument, which movement measurements include analyzing a stroking motion of the sports instrument, determining the point at which the sports instrument contacts an object, and correcting for differences between measured signals and actual signals. In one embodiment, the IMU may be classified as a six-degree-of-freedom measurement unit, and may include six sensors. However, any number of sensors may be used to achieve the IMU measurements. For example, more than six sensor readings may be beneficial for certain applications to improve accuracy, which measurements may use redundant sensors to reduce noise or capture high speed motion versus low speed motion.

The term “Frame-of-reference” or “FoR” relates to a system within a system. For example, when a golfer rides in a car, the player is motionless in the player's frame of reference, while the world appears to move around the player. In an IMU for use with the disclosed subject matter, a FoR has its own coordinate system, so the IMU FoR has a set of coordinate axes fixed relative to IMU.

In the golfing application of the disclosed subject matter, the term “square clubface” describes a situation that occurs when a vector normal to the sweet spot of the face lies in the vertical plane along the target line. In other words, in such an orientation, a target line runs along the ground, and a normal vector may point into the ground or up in the air. The “neutral at-address position” occurs when a club is positioned so that the sports instrument face is square and the shaft is leaning neither towards the target nor away from the target. In contrast, the “at-address” position means the golfer has positioned the club face square to the target line and has ceased human-perceptible motion for a period of time.

In such applications, this description provides definitions for various frames of reference as beneficial for illustrative purposes only and not for limitation in any manner. For instance, a “world FoR” or “world frame of reference” has a set of coordinate axes where the X-axis is the direction a right-handed player faces, the Y-axis is the target line of the golf shot, and the Z-axis is up. Referring briefly to FIG. 6, in the world FoR, the origin is at the center of the golf ball. The “club FoR” or “club frame of reference” includes the coordinate axes given a neutral at-address position for the sports instrument, where the Z-axis is up center of club shaft, the X-axis is the “top” of the sports instrument grip and should lie in world XZ plane in a neutral at-address position, and further where the Y-axis-positions towards target and should be parallel to world Y-axis is a neutral at-address position. In the sports instrument FoR, the origin is fixed distance from top of board.

With the above terms and definitions as a basis and with a focus on the correction process of the disclosed subject matter, FIG. 2 shows a partially exploded view of an instrument golf club (IGC) 18 which may incorporate an inertial measurement unit (IMU) consistent with the teachings of the disclosed subject matter. IGC 18 includes a head 20 and a shaft 22, both of which are similar to shafts and heads on a typical golf club. Although illustrated as a driver, head 20 can be any type of golf club, including but not limited to, an iron, a wedge, a wood, and a putter. As mentioned above, the claimed subject matter is not limited to golf clubs but can be applied to many types of bats, racquets, and game controllers. Attached to the top of shaft 22 is a grip 24, into which the claimed subject matter is incorporated. Grip 24 includes a Power On/Mute/Power Off button 26, a battery recharge connector 28, a battery recharge connector cover 30, a grip faceplate 32 and a Flag Swing button 34.

Power On/Mute/Power Off button 26 is pushed once to power on the IGC 18. Once the IGC 18 is powered on, off button 26 is pushed to toggle on and off an audio feedback signal that indicates to a player when a particular swing has broken a plane representing a correct swing. Note that such audio feedback is not a necessary, but rather a possible feature of the disclosed embodiment. Other forms of feedback and other modes of communication may occur with similar embodiments of the disclosed subject matter.

To power off the IGC 18, off button 26 is pushed in and held for four or more seconds. In addition, one embodiment of IGC 18 may turn off when held upside down and stationary for five seconds. Battery recharge connector 28 is a socket into which a battery recharger may be inserted to charge a battery pack within IGC 18. Flag swing button 34 is pushed when a player desires to mark the data corresponding to a particular swing of IGC 18 for future investigation using an analysis application on an associated computing device. A saved swing can also become a benchmark, or reference swing, against which subsequent swings can be compared, including setting a reference for the breaking planes sounds.

Grip 24 includes a Power On/Mute/Power Off button 26, a battery recharge connector 28, a battery recharge connector cover 30, a grip faceplate 32 and a Flag Swing button 34. Power On/Mute/Power Off button 26 is pushed once to power on IMU 44. Once IMU 44 is powered on, off button 26 is pushed to toggle on and off an audio feedback signal that indicates to a player when a particular swing has broken a plane representing a correct swing. To power off the IMU 44, off button 26 is pushed in and held for four or more seconds.

Battery recharge connector 28 is a socket into which a battery recharger is inserted to charge a battery pack within IMU 44. Battery recharge connector cover 30 is a plastic cover that has two protruding posts, post 36 plugs into the connector 28 and keeps moisture and dirt from entering connector 28 when battery recharger is not connected to IMU 44. Post 38 plugs into anchor hole 40 to retain cover 30 after retracing post 36 from connector 28. When IMU 44 requires recharge, cover 30 is lifted and rotated around the second protruding post to expose connector 28 and a battery recharger is inserted into connector 28. Grip faceplate 32 is a finishing piece for IMU 44 that fits within grip 24

FIG. 3 shows a partially cut-away view of IGC 18 depicting printed circuit board (PCB) or main board 42 to illustrate the dimensions of the disclosed subject matter as making IGC 18 capable of fitting within grip 24. FIG. 4 shows club grip 24 and an expanded view of a top portion of IMU 44, which fits within IGC 18. Battery recharge connector cover 30, grip faceplate 32, power on/mute/power off button 26 and flag swing button 34 were introduced above in conjunction with FIG. 1. Below grip faceplate 32 is an antenna board 46 that is employed in wireless communication between IGC 18 and an associated RF link box as described in U.S. patent application Ser. No. 10/810,168. Tab 48 extends from main board 42 and serves to secure IMU 44 in a fixed position relative to grip 24. A second, opposing tab (not shown) protrudes from the other side of main board 42 and also serves to secure IMU 44 in position relative to grip 24.

A microprocessor on main board 42 serves as a central processing unit for IGC 18. The microprocessor controls the other components of main board 42, collects sensor data, monitors system temperature, corrects sensor data for temperature related distortion, processes the corrected sensor data into position, velocity, and acceleration vectors, stores the corrected sensor data in flash memory (not shown) for later download, and performs real-time collision detection of IGC 18 with respect to the swing planes.

FIG. 5 shows three views of IMU 44. In particular, an outer view 60, an inner, exploded view 62, and an inner, assembled view, or assembly 64. Outer view 60 shows a tube 66 into which assembly 64 fits. Also shown is a screw 68 that secures assembly 64 to tube 66. Exploded view 62 includes antenna board 46 and a full view of main board 42, both of which were introduced above in conjunction with FIG. 3. Antenna board 46 is coupled both mechanically and electrically to main board 42. Also coupled mechanically and electrically to main board 42 are a club transceiver chip 70, a sounder 72, an accel/gyro board 84 and a Z-gyro board 78.

Club transceiver chip 70, which in this example is a 2.4 GHz transceiver, is responsible for wireless communication between IGC 18 and the associated RF link box. Transceiver chip 70 employs a quarter wave monopole antenna (not shown) located on antenna board 46. Sounder 72 provides an audio feedback signal to a player of IGC 18 when a particular swing falls outside of acceptable parameters. Screw 68 extends through one wall of tube 66, through one tube insert 76, through main board 42, through second tube insert 76 and through the opposite wall of tube 66. Screw 68 serves as a main position of structural integrity within IMU 44. In other words, screw 68 and tube inserts 76 prevent the various components of assembly 64 from vibrating within tube 66.

IMU 44 employs three solid-state gyroscopes, such as Analog Devices' ADXRS160, to measure angular rates around axes C_(X), C_(Y), and C_(Z). A gyroscope located on accel/gyro board 84 measures the angular rate of rotation around C_(X), a gyroscope located on main board 42 measures the angular rate of rotation around C_(Y), and a gyroscope located on the Z-gyro board 78 measures the angular rate of rotation around C_(Z).

IMU 44 makes possible corrected output from the gyroscope sensor measurements from accel/gyro board 84. These gyroscopes are configured with a bandwidth of 1320 degrees per second in order to record a typical golf swing, although other bandwidths are possible depending upon the particular application. Additional signal conditioning and analog to digital conversion circuitry (not shown) supports the three gyroscope sensors.

IMU 44 also provides two dual-axis accelerometers, such as Analog Devices ADXL210e, to measure linear acceleration along axes C_(X), C_(Y), and C_(Z). An accelerometer on main board 42 measures linear acceleration along C_(X) and C_(Z) axes. An accelerometer on accel/gyro board 84 measures linear acceleration along C_(Y) axis and duplicated data along the C_(Z) axis. Although one embodiment uses only one channel of the C_(Z) data, another embodiment may compare both channels of C_(Z) data for such benefits as increased accuracy and/or signal noise reduction. It should be noted that accelerometers can measure both linear acceleration and forces due to gravity. The ability to measure the effects of gravity allows for the resolution of a gravity vector that in effect tells IGC 18 which direction is down with respect to the surrounding world.

Swing data is stored on 8 MB of serial flash memory (not shown) on main board 42. One embodiment of the claimed subject matter employs approximately 72 kB of memory per recorded swing therefore allowing over 100 swings to be stored on the flash memory before the flash memory is consumed. Another embodiment of the claimed subject matter may use higher quantities of memory that would allow for data captured for a higher number of swings. For example, addtional memory may store additional sensor readings, if additional sensors or groups of sensors are used for performing the disclosed movement measurements.

In addition, other embodiments may sample fewer data positions per swing, thereby allowing for data to be captured from a higher number of swings. Furthermore, other embodiments may employ data compression algorithms to allow for more data to be captured from a higher number of swings. For completeness, exploded view 62 further shows tube inserts 76, battery standoff 80, battery pack 82, and battery pack wires 84.

The disclosed subject matter provides a comprehensive system for accurately measuring and modeling a swing sports instrument, such as IGC 18. For such accurate measurements and swing modeling, a coordinately set of analysis points, impact points, corrections and calibrations are necessary. One aspect of the disclosed subject matter, therefore, includes a method and system for isolating analysis positions of a golf swing. Another aspect of the disclosed subject matter provides a method and system for determining an impact position of a swinging sports instrument. Another aspect of the disclosed subject matter includes a method and system for correcting golf swing measurement errors for more accurately measuring and modeling the swinging motion. U.S. patent application Ser No. ______, entitled “METHOD AND SYSTEM FOR CALIBRATING SPORTS IMPLEMENT INERTIAL MOTION SENSING SIGNALS,” having commonly inventorship and assignment to the present disclosure describes the relevant calibrations.

The disclosed subject matter of a method and system for isolating analysis positions of a golf swing as here described and claimed, therefore, provides for analyzing a swinging motion of a sports instrument. The swinging motion occurs for contacting an object and the sports instrument includes an embedded inertial measurement unit. The method and system generate a plurality of signals from the inertial measurement unit. The plurality of signals includes a plurality of gravity signals and a plurality of acceleration signals. The disclosed subject matter receives the plurality signals from the inertial measurement unit in a signal processing circuit. The signal processing circuit analyzes the plurality of gravity signals and the plurality of acceleration signals. From the analysis of at least the plurality of gravity signals, the disclosed subject matter determines the point at which the sports instrument is at an at-address position relative to the object. From the analysis of at least plurality of acceleration signals, the disclosed subject matter determines when the sports instrument is at a top-of-swing position relative to the object. From the analysis of the signals from the inertial measurement unit, the disclosed subject matter determines when the sports instrument is in a swinging motion. Furthermore, from the analysis from at least the plurality of accelerometer signals the disclosed subject matter determines when the sports instrument is at an impact point at which the sports instrument contacts the object.

To understand these various aspects of the present disclosure, the following discussion establishes a frame of reference for discussion and exemplary mode of displaying the swinging motion measurements and modeling provided herein. To begin, FIG. 6 shows coordinate system 90 in which IGC 18 associates with two three-dimensional frames of reference, a frame 92 plotted with reference to a typical position for IGC 18 and a frame 94 plotted with reference to gravity corresponding to the world and is established relative to the golfer. Frame 92 corresponds to a coordinate system in which the positive club X-axis is identified as ‘C_(X)’, the positive club Y-axis is identified as ‘C_(Y)’ and the positive club Z-axis is identified as ‘C_(Z)’. Frame 94 corresponds to a coordinate system in which the positive world X-axis is identified as ‘G_(X)’, the positive world Y-axis is identified as ‘G_(Y)’ and the positive world Z-axis is identified as ‘G_(Z)’.

During processing of data collected by ICG 18 both frames 92 and 94 are applicable. Frame 92 corresponds to a frame of reference for measurements taken by accel/gyro board 84 and Z-gyro board 78. Frame 92 corresponds to a frame of reference of a user of IGC 18 and a display for providing feedback to the player. Those with skill in the mathematical arts can easily convert measurements back and forth between frames 92 and 94.

FIG. 7 shows an exemplary swing path data model 100 used to store information collected by IGC 18 and processed by computing device 14. Swing path data model 100 includes a swing info header 102, which stores data related to a particular swing of IGC 18, and multiple swing data elements 104. Each swing data element 104 stores measurement information from sensors on main board 42, accel/gyro board 84 and Z-gyro board 78 for a particular moment in time of a particular swing corresponding to swing data header 102. In one embodiment, if IGC 18 employs a sampling rate of 2 k Hertz, then there are 2,000 instances of swing data element 104 generated for each second that a particular swing takes, e.g. if a swing takes 2 seconds, there are 4,000 instances of swing data element 104 generated for that particular swing.

Swing info header 102 includes a swing info identifier (ID), which uniquely identifies a particular swing, a club ID, which identifies a particular club used for the swing, a swing start timestamp, which stores a start time for the swing, a swing duration data element, which stores data on how long the swing took from beginning to end, a swing flagged data element, which indicates whether or not the player has indicated that the corresponding swing is of special interest for later use and analysis, and a temperature data element, which stores the ambient temperature from a temperature sensor on main board 42 for use in analyzing output from the accelerometers and gyroscopes. The player sets the Swing Flagged data element by pushing Flag Swing button 34, typically following a particularly good swing.

Each swing data element 104 includes a swing info ID, which enables a particular swing data element 104 to be associated with a particular swing info header 102, a sequence number, which indicates an ordering of multiple swing data elements 104 associated with a particular swing info header 102, and various data elements corresponding to measurements taken from main board 42, accel/gyro board 84 and Z-gyro board 76.

An X-axis accelerometer data element corresponds to a measurement of movement in the C_(X) axis of IGC 18 taken from an accelerometer on main board 42. A Y-axis accelerometer data element corresponds to a measurement of movement in the C_(Y) axis of IGC 18 taken from the same accelerometer on accel/gyro board 84 that measures the C_(X). A Z-axis accelerometer data element corresponds to a measurement of movement in the C_(Z) axis of IGC 18 taken from the accelerometer on main board 42.

An X-axis gyroscope data element corresponds to a measurement of angular rotation around the C_(X) axis of IGC 18 taken by the gyroscope located on accel/gyro board 76. A Y-axis gyroscope data element corresponds to a measurement of angular rotation around the C_(Y) axis of IGC 18 taken by the gyroscope located on main board 42. A Z-axis gyroscope data element corresponds to a measurement of angular rotation around the C_(Z) axis of IGC 18 taken by the gyroscope located on Z-gyro board 76.

Swing path data model 100 illustrates one particular format for storing data generated by IGC 18. Those with skill in the computing arts should appreciate that there are other ways to store the data as well as other data, and corresponding data structures, employed by IGC 18. For example, computer 14, may convert linear acceleration and angular rate measurements into orientation and position information, which requires particular data structures. In an alternative embodiment, IGC 18 converts linear acceleration and angular rates into positional and orientation information.

FIG. 8 shows selected functional and demonstrative views of an exemplary analysis graphical player interface (GUI) for demonstrating the results of the claimed subject matter. In particular, FIG. 8 provides an outline for exemplary graphical user interface (GUI), or analysis application 110 that provides a user an interface to IGC 18. One with skill in the programming arts should easily understand how to program analysis application 110. The disclosed subject matter provides the ability to isolate analysis points, impact points, and make corrections for meaningful demonstration of player performance using analysis application 110.

With reference to FIG. 8, analysis application 110 offers extensive golf swing related analytics using swing path data model 100, which is collected from IGC 18 by a data collection process, stored on computer 14, and processed by a data display process described in more detail below. In an alternative embodiment, analysis application 110 employs orientation and position data, derived from swing path data model 100.

Specific swing path data model 100 records are displayed in a swing record panel 112. Swing record panel 112 also displays previously downloaded swing path data model 100 records. Records displayed in swing record panel 112 can be constrained and filtered using functionality located in a swing record filter panel 114. Swing record filter panel 114 enables a user of analysis application 110 to limit displayed records by time stamp and other characteristics. Swing path data model 100 records are selected by the player in swing record panel 112 and then loaded by analysis application 110 into other constituent panels of analysis application 110.

Once a swing path data model 100 record has been selected by the player, the player can view an animated reconstruction of the swing in swing viewing panels 116, 118, and 120. Analysis application 110 enables visualization and analysis of individual frames of the swing, of slow motion and real-time animation of the golf swing, and of pre-set key points of the swing such as at address, the top of the swing, ball impact, etc. Animation controls are located in a swing replay control panel 124. Pre-set key points of the golf swing are accessed through a swing key point control panel 126. The animated swing can be viewed from multiple, different simultaneous perspectives in panels 116, 118, and 120, for example, front, side, and top-down perspectives.

Analysis application 120 may use inverse kinematics, for example, to animate a human FIGURE and give context to the golf swing visualization. One embodiment of the disclosed subject matter provides computerized animation for a body reference, such as when a golfer chooses an idealized reference swing based upon the golfer's measurements. A specific algorithm commonly referred to as cyclic coordinate descent allows the position and orientation of swing path data model 100 records to drive the state of a simplified human skeleton viewable in swing viewing panels 116, 118, and 120. Another tool provided by analysis application 120 is the display of upper and lower swing planes during swing visualization. With such an application 120, upper and lower swing planes may be based either upon a golfer's measurements or entered manually.

Analysis application 120 provides the ability to compare a golfer's swing to a reference swing. This reference swing may derive from several sources. For example, analysis application 120 may create an ideal reference swing based on a user's physical characteristics, a previously recorded swing from another golfer, such as a touring professional golfer, or the player can designate one of their best personal swings as the reference swing. The overlaying of a swing with a reference swing during replay and visualization provides additional analysis context and allows the golfer to analyze their swing for flaws and strengths.

Beyond visual analysis, analysis application 110 offers extensive primary analytics derived from a swing path data record 100. These analytics are mainly presented in tabbed windows within the swing analytics panel 128 and within context sensitive analytics panel 122.

Analytics include, but are not limited to, a variety of examples such as the following. A shaft 22 angle analysis at key positions in the swing also is possible. An analysis of the address line, i.e., the position of the sports instrument shaft 22 at address corresponding to the line perpendicular to the target line, may occur. Analytics of the IGC 18 face position and club head/hands position at key positions in swing are possible. Club head speed and acceleration; arc inscribed by hands and club head; angles of backswing planes, transition planes, and downswing planes all may take place. Angle of attack on the golf ball, i.e., the club head angle prior to golf ball impact, the estimated golf ball flight distance, a time of pause at top-of-swing, and club head drop at beginning of downswing analytics may also take place. Furthermore, analytics are possible for the estimated wrist angle/cock angle at top-of-swing, maximum rate of acceleration on downswing or rate of acceleration at impact, and position in downswing of highest velocity. The lag distance, i.e., the distance of the butt of IGC 18 from the address line when IGC 18 is parallel to the earth on a downswing may also be analyzed.

The disclosed subject matter also permits analyzing a “lag angle” (when the butt of IGC 18 is some preset distance from the address line on a downswing, as well as a coil angle (i.e., a measurement of the rotation of IGC 18 at its furthest position from address during backswing). The “lag angle” may be considered based upon the club orientation when the wrists release on the downswing. Moreover, the lag angle may further include a determination of the release point based upon angular accelerations and/or linear accelerations. In such case, the hands will see a slowdown when the club releases because of the momentum transferring to the club head.

An estimated launch angle of the golf ball, the type of spin imparted to the golf ball, the escape velocity of the golf ball may also be analyzed. IMU 44 also supports analyzing the angle of incidence (i.e., the club head path at impact versus target line at-address) and the impact position on the IGC 18 face.

The disclosed subject matter, furthermore, supports additional analytics that combine information from multiple, primary analytics are available in analysis application 110. Examples of composite analytics include, but are not limited to, a quality of release analysis that may use the acceleration at impact combined with shaft 22 lean at impact to determine the quality of the timing of the release. Alternative, the location of maximum club head speed during the swing may be used for quality of release in place of the acceleration at impact. A tempo analysis scores the smoothness and rhythm of a golf swing. IMU 44 determines smoothness by any rapid/unexpected accelerations and decelerations during a backswing and downswing. The rhythm determination looks at the time during the backswing versus the time during the downswing.

An analysis of the divergence of a measured swing from a reference swing to provide a quality of swing measurement may also occur. The term “quality of swing” may also be known as “quality of plane,” each term having essentially the same or similar definition. In one embodiment of the disclosed subject matter, a “quality of swing” analytic may based on a combination of the other composite analytics, such as, for example, an average of tempo analytic, combined with a release analytic and a plane analytic to derive a swing determination.

The reference swing may be a reference professional swing, a previously recorded player swing, or a swing recorded from another player. Analysis application 110 may notify the player when a measured swing deviates an unacceptable distance away from the reference swing.

Analysis application 110 provides for data transmission with other installations of analysis application 110 over the internet or other communication medium. The ability to share swing path data records 100 allows for one player to record data regarding their swing and then transmit the data to a second player for further visualization and analysis. In fact, in one embodiment, a second player may annotate swing path data records 100 with comments and then transmit the annotated files to their originator. The ability to transmit annotated data between players allows for remote instruction and feedback.

Understanding the disclosed subject matter includes understanding the context within which one may practice the disclosed swinging motion measurement and modeling functions and features. An exemplary context is described in U.S. patent application Ser. No. 10/810,168 as previously referenced. For the purpose of illustration, FIGS. 9 and 10 depict the overall data collection process and the process swing methods therein described. FIG. 9, thus, provides a flowchart of a data collection process 140 associated with IGC 18 and IGC. Processing starts in a “begin operate IGC” step 142, which is initiated when a user presses power on/mute/power off button 26 of IGC 18 Prior to the initiation of process 140, IGC 18 is in an “off” state, during which IGC 18 is in a very low power mode where all components are off and the central processing unit (CPU) clock is stopped. The CPU is configured to wake when the player presses power on/mute/power off button 26 or when a battery recharger is inserted into battery recharger connector 28.

From step 142, control proceeds immediately to an “initialize IMU” step during which process 140 initializes the central processing unit (CPU), memory, power on/mute/power off button 28 and flag swing button 34 and temperature sensor of IGC 18. In addition, process 140 initiates a beep from sounder 72 so that the player can check sounder 72 functionality and checks both battery pack 82 and the availability of an RF connection with an RF link box. It should be noted that IGC 18 is able to operate and collect data without a RF connection available. Data transfer and processing can occur off-line at a more convenient time.

Following step 144, control proceeds to a “wait for input” step 146 during which IGC 18 is in a “doze” state. In this state, IGC 18 performs periodic checks for the presence of an RF link box 121. This permits determining whether or not IGC 18 should transition to an “at-address” state and to determine if power on/mute/power off button 26 has been depressed for a period of four (4) seconds, indicating that the player wishes to return IGC 18 to the off state. These periodic checks are illustrated by a transition of control by process 140 through a “link box detected” query 148, an “address detected” query 152 and an “off signal detected” query 154. In “doze” state and during the periods between at-address checks, most IMU 141 devices are powered down in order to conserve power of battery pack 82.

In the absence of detected events, as indicated by the “no” paths of steps 148, 152 and 154, the transition through steps 148, 152 and 154 occurs every 100 ms. During step 148, IGC 18 powers up club transceiver chip 70 to check for the presence of an RF link box 121. If an RF link box is detected, then control proceeds to a “process link box” step 150. Following step 150, control returns to step 146 and processing continues as described above. If, in step 148 an RF link box 121 is not detected, then control proceeds to “address detected” query 152.

During step 152, process 140 takes acceleration readings from C_(z) and C_(x) axes accelerometers, resolves the angle of the gravity vector, and reads an angular rate from the C_(x) axis gyroscope to determine a lack of rotation. If IGC 18 determines that IGC 18 is being held in a upright manner consistent with the stance of a golfer prior to a swing and that IGC 18 is not being swung or moving around the C_(x) axis, IGC 18 moves from the doze state into the at-address state and control proceeds to a “process swing” step 154. Following step 154, control returns to step 146 and processing continues as described above. If, in step 152, IGC 18 does not detect that the player is addressing the ball, then control proceeds to off “signal detected” query 154.

During step 154, IGC 18 determines whether or not power on/mute/power off button 26 has been pressed for a sustained period of time, e.g. four (4) seconds. If not, then control returns to 146 and processing continues as described above.

If power on/mute/power off button 26 has been pressed for a sustained period of time, then control proceeds to a “power down” step 158, during which IGC 18 takes actions necessary to return to the off state in which, as described above, IGC 18 is in a very low power mode where all components are off and the central processing unit (CPU) clock is stopped. Finally, control proceeds from step 158 to an “End Operate IGC” step 160 in which process 140 is complete.

It should be noted that, although process 140 is described here as a “polling” process, process 140 could also be engineered as an event or interrupt driven process. Those with skill in the computing arts should appreciate the both the advantages and disadvantages of the different approaches.

Now, with reference to FIG. 10, there appears flowchart 170 for the process swing functions performed during an exemplary operation of a data collection process of FIG. 9. Process swing flowchart 170 begins with process swing step 172. “Begin process swing” step 172 causes control to proceed immediately to a “wait for motion” step 174 during which IMU 44 periodically samples all gyroscopes and accelerometers simultaneously every 0.0005 seconds, for a sampling rate of 2 kHz. At this point, IMU 44 is still in the at-address state.

After each sample, control proceeds to a “sufficient rotation” step 174 during which IMU 44 calculates the rotational rate of the club around the C_(X) axis and thereby determines whether or not IGC 18 has started swinging. If the rotation rate does not exceed the threshold, then control proceeds to a “timeout” step 178 during which IMU 44 determines whether or not IGC 18 has been at the at-address state for longer than a predetermined amount of time. If so, control proceeds to an “end process swing” step 188 in which step 172 is complete. If the predetermined period of time has not been exceeded, then control returns to step 172 and IMU 44 waits for another sample.

If, in step 176, the rotation rate around the C_(X) exceeds the set threshold rate, IMU 44 enters a “swinging” state and control proceeds to a “sample sensors” step 180. During step 180, IMU 44 samples all gyroscopes and accelerometers and stores the swing generated sensor data 201 to flash memory. As explained above in conjunction with FIG. 7, swing data collected by IMU 44 is stored as swing path data model 100 comprised of swing info header 102 with multiple swing data elements 104. Swing info header 102 contains information such as initial timestamp, swing duration, swing flag status, and temperature. Each sampling IMU 44 sensors is stored in a swing data element file 104. Each swing data element file 104 contains data regarding accelerations along C_(X), C_(Y), and C_(Z) axes and angular rate data around C_(X), C_(Y), and C_(Z) axes. Therefore, for a given swing, there exists a one-to-many relationship between swing info header 102 record and the multiple swing data elements 104.

The described embodiment of the claimed subject matter employs a fixed sampling rate, i.e. 2 kHz. Therefore, given the initial timestamp and a fixed time between samples, a swing path can be chronologically recreated. IMU 44 also monitors its position with respect to the upper and lower swing planes. While in the swinging state, if club head 20 breaks either the upper or lower swing planes, sounder 76 produces an audible tone. This audible feedback can be toggled between a sound on and a sound off, or mute, configuration by briefly depressing power on/mute/power off button 117.

After each sampling interval, control proceeds from step 180 to a “time exceeded” query 182 during which process 170 determines whether more time has elapsed than necessary to complete a swing of IGC 18. If so, control proceeds to a “write data” step 186 during which the data samples captured during iteration through step 180 are copied to and stored in a memory. IMU 44 then returns to a doze state and control proceeds to an “end process swing” step 188 in which step 172 is complete.

If, in step 182, process 170 determines that the swing has not exceeded the maximum allowable time, then control proceeds to an “insufficient rotation” query 184 during which process 170 determines whether or not IGC 18 is moving sufficiently fast still to be considered in the process of a swing. IMU 44 determines the end of the swing by monitoring the moving average of rotation vector magnitude. The magnitude of the rotation vector is calculated by taking the square root of the sum of the squared values of angular rate around the C_(X), C_(Y), and C_(Z) axes. If the moving average falls below a set threshold, the swing is declared complete, and control proceeds to “write data” step 186 and processing continues as described above. If, in step 184, process 170 determines the swing is still active, i.e. the moving average is above the threshold, then control returns to step 180 and more data samples are collected as described above.

Having described the overall data collection process and the process swing method that may associate with the disclosed subject matter, now an understanding of the present method for measuring and modeling a swinging motion, including the isolation of key swing points, the determination of impact points, and the correction of certain errors may occur. Accordingly, the key analysis positions of the golf swing that the disclosed subject matter measures and models are (1) an at-address position, (2) a top-of-swing position, and (3) an impact position. The vibration occurring at impact substantially limits inertial measurement analysis after the impact position. This is because the shock vibration occurring at impact makes measurements after impact often unreliable. The primary purpose of the at-address analysis is to determine the orientation of the sports instrument. Using mathematical induction, the at-address position may be considered as the n=0^(th) position. By analyzing the gravitational orientation at the at-address position, it is possible to determine the other positions in the algorithmic process and determine all other positions of interest in the golf swing.

FIG. 11 shows a flowchart of an “at-address” determination process 190 consistent with the present disclosure. There are other at-address algorithm that may fall within the scope of the disclosed subject matter. For example, an at-address algorithm that works backwards to find a single point that meeting a single set of at-address criteria may also fall within the scope of the claimed subject matter. With reference to the embodiment of FIG. 11, though, at-address algorithm 190 begins at step 192 for finding the narrowest parameter set where an interval during address qualifies as “at-address.” At query 194, a test occurs of whether there is a section of at least a predetermine number (X) of consecutive points that qualify as “at-address.” If not, then process flow continues to step 196 wherein there is a determination of whether a wider parameter set exists. If the result of the query of step 196 is negative, then process flow continues to step 198 wherein the process result is that no address position is found. On the other hand, if the step 196 returns a positive result, then process flow goes to step 200 to obtain a wider parameter set, after which process flow goes to back to the query of step 194.

If the step 194 query result is positive, then process flow for address algorithm 190 goes to step 202 wherein the process chooses the latest section of a predetermined number (X) of consecutive at-address points. The next step 204 finds the “best” address points within a stationary section. Then, process flow goes to the query of step 206 to test whether there is another section of intervals with at least a predetermined number (X) consecutive “at-address” points. If so, then, at step 208, process flow includes checking for a better address point within the other section. Then, if a better address point exists, at step 210, such point is selected as the address. Finally, with either (a) the better address point determined at step 210 or (b) the existing address point as determined at step 204, process flow continues to step 212 to provide the address algorithm 190 output of a returned address position.

There are two different components of the at-address position. The at-address position allows IMU 44 to determine the orientation and a best position for the true start-of-swing. Raw data readings permit for determining the sports instrument initial orientation. Alternatively, orientation may be determined using external information, such as an alignment device. With this information, IMU 44 may determine sports instrument velocity. A first address component includes a gravity vector that provides a parameter useful for determining the correct initial orientation. IMU 44 requires the player to bring the sports instrument to a rest at some position during the address. That is, when IMU 44 is stationary, the only measurements reported by IMU 44 are preferably will be acceleration due to gravity (and noise/other data inaccuracies).

Process 190 for determining the at-address position, therefore, involves determining that the sports instrument is in a valid address orientation. IMU 44 determines that the sports instrument is being moved into address by the individual accelerometer readings. IMU 44 knows the basic range of readings for each accelerometer that indicate the sports instrument is oriented as if to address the golf ball, for example. Therefore, the disclosed subject matter records minima and maxima readings for each accelerometer to determine that the player is addressing the golf ball.

When the sensors register their lowest levels of movement, e.g., when the club is motionless, IMU 44 may accurately read the direction of gravity. IMU 44 determines this by checking that the magnitude of the acceleration vector is close to the gravitational constant, g, while the magnitude of the angular rate vector is close to zero. Due to correction errors and noise, IMU 44 controls these using sets of parameters that start out tight and gradually expand. IMU 44 iterates through these parameter sets to look for the best possible positions first, and gradually move to the wider sets until a range of valid positions is found that may be evaluated as motionless.

The gravity vector is not sufficient for establishing a coordinate system. Specifically, a gravity vector is sufficient for determining the inclination of IMU 44, but is not sufficient for establishing the coordinate axes for the IMU 44 FoR. In the world FoR, the gravity vector will produce the angle of IMU 44 relative to vertical, but IMU 44 cannot determine the need for a “twist” in the orientation around the world Z-axis. Therefore, IMU 44 requires additional information. IMU 44 obtains this information by assuming that the player squares the sports instrument face with the golf ball or object. By assuming a square clubface, IMU 44 can determine the target line of IMU 44 (world FoR Y-axis) and therefore extrapolate the twist of the unit about the world Z-axis.

In the at-address position determination, it is desirable to have IMU 44 as fixed or motionless as possible. This is because at such a position the player is addressing the golf ball in preparation for taking the golf swing. This at-address position may orient the swing analysis that IMU 44 accomplishes. The present disclosure aligns the bore that holds IMU 44 to be parallel in alignment with the sports instrument face and in the direction of the hitting motion. Thus, with the ability to determine the position of IMU 44 and the at-address position it is possible to determine a set of vectors that change and permit the measurement of club head position as the swing progresses. Aligning IMU 44 with the at-address position using a gravity vector permits inferring that the sports instrument face is square. Thus, these two parameters of the position of IMU 44 and the at-address position permit determining the orientation of IMU 44.

Another consideration relating to the use of the at-address position includes the ability to determine the position of an origin to be the location of the golf ball. IMU 44 divides the golf swing into segments, including super-segments and sub-segments. Through these segments it is possible to identify an “address segment,” a “backswing segment,” a “downswing segment,” and a “follow-through segment.” Within each of these super-segments are an appropriate number of sub-segments. Thus, for example, at the address segment a set of sub-segments may include a segment beginning with an initial preparation and continuing until motion stops or, at least, goes to a minimum level of motion. A second segment begins at such a stopped motion state to player's taking the sports instrument away from the golf ball as the backswing begins. Other sub-segments relating to the backswing, downswing, and follow-through segments could be partitioned and analyzed accordingly.

Certain sources of error affect the ability to calculate orientation from address. A first error source is sensor noise. Sensor noise results in gravity vectors that are not precisely 9.8 m/s² and misalignments in the direction of the gravity vector. IMU orientation within the sports instrument shaft provides a further error source. The shaft keeps IMU 44 almost perfectly vertical, to the position where IMU 44 does not worry about it. However, even a small amount of twist within the shaft may produce a significant orientation error. Player alignment of the sports instrument face also may produce measurement errors. It is very easy to set up with the sports instrument face off by one or two degrees from the direction the player is trying to swing. Measurement errors may also arise due to the face of a club head being curved, which further complicates measurements.

Because of the measurement errors, IMU 44 determines the most accurate orientation when the sports instrument addresses the golf ball in a “hands-neutral” position. The hands-neutral position occurs when the hands are neither in front of nor behind the sports instrument face. This is because, in this position, the face of IMU 44 within the sports instrument is close to parallel with the sports instrument contact surface. In addition, in this position IMU 44 is approximately vertical to the Y-axis, thereby further minimizing measurement errors. That is, IMU 44 approximates a horizontal angle to the Y-axis. This is because the shaft still is at an angle close to the lie angle (i.e., approximately at a 45° angle) with the ground. With this significant angle with the vertical, a neutral at-address position provides the closest estimation possible of a square club face.

IMU 44, in operation, seeks to identify the vertical position during the address window to establish the IMU 44 orientation. IMU 44 iterates through various position measurements seeking a stable accelerometer readings having consistently low Y-accelerometer reading values. IMU 44 needs to establish consistency to avoid selecting a position that happens to spike into the correct range due to noise and to avoid selecting a position that occurs during movement. IMU 44 does this by ensuring there are a threshold number of positions that meet the parameter set.

Because IMU 44 seeks a certain orientation of the sports instrument, the process often selects a position too early in the address window. Picking a position too early may result in displaying a lack of motion or part of the player's address routine that does not matter. Therefore, IMU 44 selects the latest “motionless” position during operation as the start-of-swing to eliminate such problems.

To achieve this result, IMU 44 starts from the end of the 800-ms address window, where IMU 44 knows the swing has begun. At such point, IMU 44 may track backwards from the end of the interval and examine the recorded output from two key sensors. These sensors are the Y-accelerometer and the X-gyroscope. Right-handed swings experience strongly negative Y-accelerometer and X-gyroscope readings during the backswing. IMU 44, therefore, examines these negative readings and tracks back until IMU 44 readings tend toward zero. IMU 44 also looks for positions that qualify as at-address and try to pick an interval within a stable set of positions that seem motionless. The disclosd subject matter applies a similar approach for left-handed golfers?

Theoretically, the first set of motionless positions should contain the start-of-swing, but there are scenarios that may made this determination difficult. Once IMU 44 initiates start-of-swing checking, the at-address algorithm will change to find the at-address position and the start-of-swing. IMU 44 will establish the initial orientation at the at-address position, and then carry only the orientation calculations through to the start-of-swing. Since IMU 44 is establishing an early orientation in many cases, IMU 44 will have more information at the disposal. It is possible to calculate position and velocity values from the at-address position, and use position change to determine the best start of swing location.

Another aspect of the disclosed subject matter includes a method and system for determining an impact point of a swinging sports instrument. This aspect determines an impact position at which the sports instrument generates an acceleration measurements stream from the inertial measurement unit. The acceleration measurements stream includes a plurality of acceleration signals from the inertial measurement unit. The plurality of acceleration signals are associated with movement of the sports instrument. Each of the plurality of acceleration signals corresponds to a position of the sports instrument during the movement. The disclosed subject matter receives the acceleration measurements stream in a signal processing circuit. The signal processing circuit relates the acceleration measurements stream to movement of the sports instrument. The disclosed subject matter furthermore determines the presence of a shock vibration measurement within the acceleration measurements stream. Then, IMU 44 relates the shock vibration to a position at which the sports instrument impacts the object.

To illustrate one approach to achieving these results, FIGS. 12 and 13 provide flowcharts relating to the impact position determination process of the present disclosure. FIG. 12 depicts the impact position determination process 220 of IMU 44. Impact algorithm 220 determines whether a section of data is experiencing vibration at step 222, wherein an input starting interval for search for vibration occurs. Then, at step 224, impact algorithm starts a search for a new section of vibration. Thereafter, at step 226, impact algorithm 220 determines if a data position is vibrating. To make this determination process flow goes to FIG. 13, which begins at step 228, wherein there is a determination of whether a vibrating data position exists. That is, upon determining that one or more accelerometers is vibrating at step 228, impact algorithm 220 continues to step 230 at which position a query occurs of whether two of the three accelerometers are vibrating. If so, then a determination of a vibration at the sports instrument is made at step 232. If fewer than two of the three accelerometers are vibrating, then, at step 234, the determination occurs that no data position is vibrating.

Then, process flow returns to FIG. 12. If a data position is vibrating, then the step 236 query causes process flow to proceed to step 238, wherein the process adds 1 to the vibration section count. After either (a) it is determined that a data position is not vibrating at step 236, or (b) 1 is added to the vibration section count at step 238, process flow proceeds to the query of step 240 to test whether the process has iterated through a predetermined number (X) of data positions. If not, then process flow goes to step 242 where impact algorithm 228 moves to the next position, which position is analyzed by step 226, wherein an analysis of whether the data position is vibrating.

If, on the other hand, the query of step 240 determines that the predetermined number (X) data positions have been iterated, then impact algorithm 220 process flow proceeds to the query of step 244 where a test occurs of whether enough data positions in the section are vibrating. If so, then process flow goes to step 246 wherein impact algorithm proceeds to the return starting interval as the impact position. On the other hand, if there are not enough positions in the section vibrating, then process flow proceeds to step 248, where impact algorithm 220 adds 1 to the starting interval. After step 246, process flow returns to step 224 for starting a new search for a new section of vibration. Thereafter, impact algorithm 220 continues as previously described herein.

At impact, therefore, a shocking vibration determines the position at which the club head impacts or hits the golf ball. With IMU 44, the measure of vibration is set to that which would occur upon the club head striking a whiffle-ball. This low threshold assures that the swing analysis will occur with at least this level of vibration and that the impact position analysis can occur. Of course, with a more precise determination of the golf ball location, using the concepts for at-address and golf ball orientation already described, it may be possible to avoid the need to use the whiffle-ball vibration threshold analysis for determining the golf ball impact position.

A casual examination of typical accelerometer data stream during a swing reveals a relatively smooth trend during the swing. However, at impact, the vibration causes the reading to spike significantly over consecutive intervals, resulting in a strong spike at the beginning followed by a gradual dampening of the spiking as the vibration dissipates.

An accelerometer is considered to experience vibration under one of two conditions. The first condition is that there is a significant change in acceleration. This is controlled by examining a predetermined parameter. Another way for an accelerometer to report a shocking vibration occurs with a smaller change in acceleration coupled with a reversal in direction. A smaller acceleration change sometimes appears outside of a vibration position, but a reversal with this type of change indicates a shocking vibration to exist.

The disclosed subject matter also determines the data position at which vibration occurs. One novel aspect of determining vibration relates to the value read by the accelerometer is somewhat random during vibration. Vibration causes an acceleration spike that oscillates back and forth around the true value of acceleration at the frequency of the vibration. Depending on where the accelerometer reading is taken, the offset caused by vibration can be anywhere from the maximum of the spike to the minimum of the spike.

For example, if the spike oscillates between 10 and −10 m/s², the actual acceleration “X” will produce a final value of between X−10 m/sec and x+10 m/sec, depending on the moment the acceleration is measured. Therefore, it is possible for a shocking vibration to produce no noticeable change between certain intervals. As such, IMU 44 somewhat liberally declares a position as vibrating. For example, if two of the three accelerometers experiencing vibration, IMU 44 determines that the associated position is experiencing vibration.

In addition to determining the position at which vibration occurs, the disclosed subject matter also determines whether a section of data in the acceleration measurement stream is experiencing vibration. IMU 44 determines an impact, the swing iterates through data positions and looks for a fixed-length section where a certain number of data positions are considered vibrating. If this is the case, the position before the starting interval is considered the impact position. This is because it takes approximately ⅔ of a millisecond for vibration to travel from the club head up to IMU 44, so the actual impact position is likely one interval prior to start of vibration.

The disclosed subject matter also includes a method for correcting swing analysis data deriving from an IMU 44. The method includes the steps of generating a plurality of signals from the inertial measurement unit in response to movement of the sports instrument. The plurality of signals includes a plurality of orientation measurements and a plurality of acceleration measurement. The method corrects the orientation measurements in response to rotation of the sports instrument occurring upon the sports instrument impacting the object. Correcting acceleration measurements removes inaccuracies deriving from the orientation of at least one accelerometer and the orientation of at least one gyroscope differing from the point at which the sports instrument contacts the object.

The correction method here disclosed, therefore, subtracts gravity readings from each interval, and if the orientation is drastically off, IMU 44 “pushes” the swing in some direction by removing the wrong gravity reading. The correction relates to rotation of the sports instrument having an incorrect rotation at impact. In addition, upon making the orientation correction it is possible to make the acceleration correction. Note, however, that the acceleration correction does not affect the orientation correction.

Orientation correction is the process by which IMU 44 compensates for noise in the gyroscopes by moving the impact orientation close to the address orientation. The goal of the correction is to remove the inaccuracy of the gyroscope data with as little distortion of the swing as possible. Distortion of the swing happens in part because of bad orientation: there is the need to subtract gravity readings from each interval, and if the orientation is drastically off, IMU 44 must “push” the swing in some direction by removing the wrong gravity reading.

Orientation is determined by two factors. One factor includes the address orientation, as discussed in the address determination documentation. Gyroscope readings are determined over successive intervals. Given the orientation at the start of the swing, gyroscope readings over successive intervals are integrated to provide the orientation change experienced over each successive interval. The calculated orientation changes are incorporated into the overall algorithm.

Orientation correction uses vector operations involving orientation angles that are not commutative. However, for small values orientation vector operations are commutative. Therefore, there is the need for some flexibility to apply small orientation vector corrections to each interval.

Knowing impact interval locations by another algorithm, it is possible to make a first, uncorrected pass through the position-orientation algorithm and determine the uncorrected impact orientation. From this, it is possible can determine the amount of orientation change that needs to be applied to shift impact orientation to match address orientation. In order to apply the correction in an unnoticed manner, rather than applying equal corrections across all intervals, the process involves making the correction proportional to each angular rate. This keeps the sports instrument from displaying a significantly higher motion change in “slow motion” intervals. This method does result in the final orientation not matching the address orientation quite as closely, as the math does not exactly work out due to some extremely high corrections across “fast motion” intervals.

Once the orientation correction is determined for each interval, the vector is converted to an angular rate vector and applied to the raw angular rates. These changed rates are then fed back into the overall position-orientation algorithm to obtain new values, allowing us to use an unchanged algorithm to recalculate.

Orientation correction uses the top-of-swing and the impact position to determine the desired correction. The model assumes that orientation is reliable through the top-of-swing. Taking that orientation and the orientation expected at impact, we are use the amount of angular twist needed to make the correction to be at the correct position of impact. This is applied on more of a percentage basis depending on the magnitude of the angular rate. This percentage is calculated using Euler angles for comparing any two orientations to generate three rotations that will provide unique correction solution. The values employ direction cosine matrices, in which each element of the matrix represents the cosine of the angle between an axis of one frame of reference and the axis of another frame of reference.

The acceleration correction uses basic physics principles wherein vector mathematics provides an understanding of the acceleration and velocity components of IMU 44 swing analysis model. In such a model, it is possible to apply a constant correction to understand how the system operates. If IMU 44 is considered to be a position, then it possible to apply a constant acceleration from address to impact to understand the position of the sports instrument. In order for this to occur, it is necessary to take the orientation of IMU 44 at every position throughout the swing and calculate in the frame of reference of the orientation, which changes as the swing progresses. Because the orientation changes throughout the swing, it is necessary to make the orientation corrections prior to performing the acceleration correction.

Acceleration correction may occur after orientation correction to determine if a position correction is necessary. This correction is applied in the form of changing the accelerations for the same reason as the orientation correction: we can use the same position-orientation algorithm for calculations. With accelerometer readings in conjunction with the orientation values it is possible to determine position changes. IMU 44 accomplishes this by first converting the sensor readings into a real-world orientation for each interval. Then, IMU 44 double integrates these accelerations to derive position changes for each interval.

The goal of the correction is two-fold. A first goal is to give the player confidence that these values are those recorded by the sports instrument. A second goal is to present mostly valid information gathered by the sports instrument so the player can learn from his mistakes. The acceleration correction may occur any orientation correction is applied for using the results to determine the difference between the golf ball position at impact and the club head at impact. This correction process assumes a strike in the center of the sweet spot to be a simple vector offset. Then, the process involves applying a change in acceleration that will affect each successive position. For example, stating that the acceleration increases by 5 m/sec², for 1 second will add 5 m/s to the velocity of each successive interval.

At least two alternative ways for dealing with this problem may exist. One method is a statistical method; the other is an empirical method. In both cases, the total position correction necessary is calculated by subtracting the impact position (x, y, z) from the origin (0, 0, 0), yielding the total correction (−x, −y, −z). In both cases, the result tends to be within 3 cm for the most part, including the most unusual golf swings.

The statistical method involves calculating the total amount of position correction that should be applied to each interval, applying a little early on and more significantly in the later stages. The statistical method uses a simple statistical algorithm that applies an ascending percentage of the position correction as time progresses. Over the course of the swing, the sum of the percentages ends up near one.

The process begins with calculating velocity in club frame. Equations from the algorithm are the following:

and

where, i goes from 1 to the impact Index value. The process involves expanding the v term by substitution to yield the following expression: $v_{e_{i}} = {{C_{i - 1} \cdot \left\lbrack {{{\frac{F_{c_{i}} + F_{c_{i - 1}}}{2} \cdot \Delta}\quad t} + {{\frac{\left( {\alpha_{c_{i}} \times F_{c_{i}}} \right) + \left( {\alpha_{c_{i - 1}} \times F_{c_{i - 1}}} \right)}{2} \cdot \Delta}\quad t}} \right\rbrack} - {{g_{e} \cdot \Delta}\quad t}}$ The process then adds a linear acceleration correction vector to each force value to yield the following expression: $v_{e_{i}} = {{C_{i - 1} \cdot \left\lbrack {{\begin{matrix} {{{\frac{\left( {F_{c_{i}} + \delta_{a}} \right) + \left( {F_{c_{i - 1}} + \delta_{a}} \right)}{2} \cdot \Delta}\quad t} +} \\ \frac{\left\lbrack {\alpha_{c_{i}} \times \left( {F_{c_{i}} + \delta_{a}} \right)} \right\rbrack + \left\lbrack {\alpha_{c_{i - 1}} \times \left( {F_{c_{i - 1}} + \delta_{a}} \right)} \right\rbrack}{2} \end{matrix} \cdot \Delta}\quad t} \right\rbrack} - {{g_{e} \cdot \Delta}\quad t}}$ By separating parameters using vector identities, the following expression results: $v_{e_{i}} = {{C_{i - 1} \cdot \left\lbrack {{\begin{matrix} {{{\frac{\left( {F_{c_{i}} + F_{c_{i - 1}}} \right) + \left( {\delta_{a} + \delta_{a}} \right)}{2} \cdot \Delta}\quad t} +} \\ \frac{\begin{matrix} {\left( {\alpha_{c_{i}} \times F_{c_{i}}} \right) + \left( {\alpha_{c_{i}} \times \delta_{a}} \right) +} \\ {\left( {\alpha_{c_{i - 1}} \times F_{c_{i - 1}}} \right) + \left( {\alpha_{c_{i - 1}} \times \delta_{a}} \right)} \end{matrix}}{2} \end{matrix} \cdot \Delta}\quad t} \right\rbrack} - {{g_{e} \cdot \Delta}\quad t}}$ Now, reorganizing the above equation using the matrix identity A(x+y)=Ax+Ay yields the following expression: $v_{e_{i}} = {{C_{i - 1} \cdot \left\lbrack {{{\frac{F_{c_{i}} + F_{c_{i - 1}}}{2} \cdot \Delta}\quad t} + {{\frac{\left( {\alpha_{c_{i}} \times F_{c_{i}}} \right) + \left( {\alpha_{c_{i - 1}} \times F_{c_{i - 1}}} \right)}{2} \cdot \Delta}\quad t}} \right\rbrack} - {{g_{e} \cdot \Delta}\quad t} + {C_{i - 1}\left\lbrack {{\delta\quad{a \cdot \Delta}\quad t} + {{\frac{\left( {\alpha_{c_{i}} \times \delta\quad a} \right) + \left( {\alpha_{c_{i - 1}} \times \delta_{a}} \right)}{2} \cdot \Delta}\quad t}} \right\rbrack}}$ Correcting the velocity by adding a linear acceleration term produces the original formula for velocity, along with a term representing velocity correction over each interval as follows: ${\,{vCorrectionTerm}_{i}} = {C_{i - 1} \cdot \left\lbrack {{\delta\quad{a \cdot \Delta}\quad t} + {{\frac{\left( {\alpha_{c_{i}} \times \delta\quad a} \right) + \left( {\alpha_{c_{i - 1}} \times \delta_{a}} \right)}{2} \cdot \Delta}\quad t}} \right\rbrack}$ where, i goes from 1 to the impact Index. Reorganizing this expression yields, ${\,{vCorrectionTerm}_{i}} = {C_{i - 1} \cdot \left\lbrack {{\delta\quad{a \cdot \Delta}\quad t} + {{\frac{\left( {\alpha_{c_{i}} + \alpha_{c_{i - 1}}} \right) \times \delta_{a}}{2} \cdot \Delta}\quad t}} \right\rbrack}$ The process then includes determining the total velocity correction for a given interval to achieve the follow expressions of either vCorrectionTotal_(i)=vCorrectionTotal_(i-1)+vCorrectionTerm_(j) or, more generally, ${\,{vCorrectionTotal}_{i}} = {\sum\limits_{j = 1}^{i}\quad{\,{vCorrectionTerm}_{j}}}$ From the sensing algorithm comes the expression d _(e) _(i) =Trap(d _(e) ,v _(e) ,i,Δt) So, ${\,{xCorrectionTerm}_{i}} = {{\frac{{\,{vCorrectionTotal}_{i - 1}} + {\,{vCorrectionTotal}_{i}}}{2} \cdot \Delta}\quad t}$ Which may be expanded for series examination to the following expressions: $\begin{matrix} {{\,{xCorrectionTerm}_{1}} = {{\frac{\,{vCorrectionTotal}_{1}}{2} \cdot \Delta}\quad t}} \\ {{\,{xCorrectionTerm}_{2}} = {{\frac{{\,{vCorrectionTotal}_{2}} + {\,{vCorrectionTotal}_{1}}}{2} \cdot \Delta}\quad t}} \end{matrix}$ ${and},{{\,{xCorrectionTerm}_{3}} = {{\frac{{\,{vCorrectionTotal}_{3}} + {\,{vCorrectionTotal}_{2}}}{2} \cdot \Delta}\quad t}}$ Expanding the vCorrection Totals for examination yields the following expressions: $\begin{matrix} {{\,{xCorrectionTerm}_{1}} = {{\frac{\,{vCorrectionTerm}_{1}}{2} \cdot \Delta}\quad t}} \\ {{\,{xCorrectionTerm}_{2}} = {{\frac{\begin{matrix} {\left( {{\,{vCorrectionTerm}_{2}} + {\,{vCorrectionTerm}_{1}}} \right) +} \\ {vCorrectionTerm}_{1} \end{matrix}}{2} \cdot \Delta}\quad t}} \end{matrix}$ and ${\,{xCorrectionTerm}_{3}} = {{\frac{\begin{matrix} {\begin{pmatrix} {{vCorrectionTerm}_{3} + {vCorrectionTerm}_{2} +} \\ {vCorrectionTerm}_{1} \end{pmatrix} +} \\ \left( {{vCorrectionTerm}_{2} + {vCorrectionTerm}_{1}} \right) \end{matrix}}{2} \cdot \Delta}\quad t}$ Another way to express the above equations is the following: $\begin{matrix} {{\,{xCorrectionTerm}_{i}} = {{\frac{{\sum\limits_{j = 1}^{i}\quad{{vCorrectionTerm}_{j}{\,{+ {\sum\limits_{j = 1}^{i - 1}\quad({vCorrectionTerm})_{j}}}}}}\quad}{2} \cdot \Delta}\quad t}} \\ {{{\,{xCorrectionTerm}_{i}} = {{\frac{{\,{vCorrectionTerm}_{i}} + {\sum\limits_{j = 1}^{i - 1}\quad\left( {2 \cdot {\,{vCorrectionTerm}}} \right)_{j}}}{2} \cdot \Delta}\quad t}}{and}{{xCorrectionTerm}_{i} = {{\left( {\frac{\,{vCorrectionTerm}_{i}}{2} + {\sum\limits_{j = 1}^{i - 1}\quad{\,{vCorrectionTerm}_{j}}}} \right) \cdot \Delta}\quad t}}} \end{matrix}$ The process then derives the sum of the x corrections as follows: ${xCorrection} = {\sum\limits_{j = 1}^{impactIndex}\quad{xCorrectionTerm}_{j}}$ and ${{xCorrection} = {\sum\limits_{k = 1}^{impactIndex}\left( {\frac{{vCorrectionTerm}_{k}}{2} + {\sum\limits_{j = 1}^{k - 1}\quad{vCorrectionTerm}_{j}}} \right)}}{{\cdot \Delta}\quad t}\quad$ which may be expressed as the following: ${xCorrection} = {{\sum\limits_{k = 1}^{impactIndex}{{\left( \frac{{vCorrectionTerm}_{k}}{2} \right) \cdot \Delta}\quad t}} + {\sum\limits_{k = 1}^{impactIndex}{{\left( {{impactIndex} - k} \right) \cdot {vCorrectionTerm}_{k} \cdot \Delta}\quad t}}}$

Upon combining the above series, the result becomes ${xCorrection} = {\sum\limits_{k = 1}^{impactIndex}{{\left( {{impactIndex} - k + \frac{1}{2}} \right) \cdot {vCorrectionTerm}_{k} \cdot \Delta}\quad t}}$ By substituting the vCorrection term and reorganizing the follow system of expressions results: ${xCorrection} = {\sum\limits_{k = 1}^{impactIndex}{\left( {{impactIndex} - k + \frac{1}{2}} \right) \cdot \left\lbrack {c_{k - 1} \cdot \left\lbrack {{\delta\quad{a \cdot \Delta}\quad t^{2}} + {\left\lbrack {\left( {\alpha_{c_{k}} + \alpha_{c_{k - 1}}} \right) \times \delta\quad a} \right\rbrack \cdot \frac{\Delta\quad t^{2}}{2}}} \right\rbrack} \right\rbrack}}$ and ${vCorrectionTerm}_{i} = {c_{i - 1} \cdot \left\lbrack {{\delta\quad{a \cdot \Delta}\quad t} + {{\frac{\left( {\alpha_{c_{i}} + \alpha_{c_{i - 1}}} \right) \times \delta\quad a}{2} \cdot \Delta}\quad t}} \right\rbrack}$ Split into two series, this system becomes ${xCorrection} = {{\sum\limits_{k = 1}^{impactIndex}{{\left( {{impactIndex} - k + \frac{1}{2}} \right) \cdot C_{k - 1} \cdot \delta}\quad{a \cdot \Delta}\quad t^{2}}} + {\sum\limits_{k = 1}^{impactIndex}{\left( {{impactIndex} - k + \frac{1}{2}} \right) \cdot C_{k - 1} \cdot \left\lbrack {\left( {\alpha_{c_{k}} + \alpha_{c_{k - 1}}} \right) \times \delta\quad a} \right\rbrack \cdot \frac{\Delta\quad t^{2}}{2}}}}$ and ${xCorrection} = {{\Delta\quad{t^{2} \cdot {\sum\limits_{k = 1}^{impactIndex}{{\left\lbrack {\left( {{impactIndex} - k + \frac{1}{2}} \right) \cdot C_{k - 1}} \right\rbrack \cdot \delta}\quad a}}}} + {\frac{\Delta\quad t^{2}}{2} \cdot {\sum\limits_{k = 1}^{impactIndex}{\left\lbrack {\left( {{impactIndex} - k + \frac{1}{2}} \right) \cdot C_{k - 1} \cdot \left( {\alpha_{c_{k}} + \alpha_{c_{k - 1}}} \right)} \right\rbrack \times \delta\quad a}}}}$ Upon substituting variables for summed terms, these expressions may become: $\begin{matrix} {{xCorrection} = {{{A \cdot \delta}\quad{a \cdot \Delta}\quad t^{2}} + {\Delta\quad{t^{2} \cdot B} \times \delta\quad a}}} \\ {A = {\sum\limits_{k = 1}^{impactIndex}{\left( {{impactIndex} - k + \frac{1}{2}} \right) \cdot C_{k - 1}}}} \end{matrix}$ ${and},{B = {\frac{1}{2} \cdot {\sum\limits_{k = 1}^{impactIndex}\left\lbrack {\left( {{impactIndex} - k + \frac{1}{2}} \right) \cdot C_{k - 1} \cdot \left( {\alpha_{c_{k}} + \alpha_{c_{k - 1}}} \right)} \right\rbrack}}}$ Expanding these terms into matrix equivalents yields $\begin{pmatrix} x_{x} \\ x_{y} \\ x_{z} \end{pmatrix} = {{{\begin{pmatrix} A_{00} & A_{01} & A_{02} \\ A_{10} & A_{11} & A_{12} \\ A_{20} & A_{21} & A_{22} \end{pmatrix} \cdot \begin{pmatrix} {\delta\quad a_{x}} \\ {\delta\quad a_{y}} \\ {\delta\quad a_{z}} \end{pmatrix} \cdot \Delta}\quad t^{2}} + {\Delta\quad{t^{2} \cdot \begin{pmatrix} B_{x} \\ B_{y} \\ B_{z} \end{pmatrix}} \times \begin{pmatrix} {\delta\quad a_{x}} \\ {\delta\quad a_{y}} \\ {\delta\quad a_{z}} \end{pmatrix}}}$ and ${\frac{1}{{\,\Delta}\quad t^{2}} \cdot \begin{pmatrix} x_{x} \\ x_{y} \\ x_{z} \end{pmatrix}} = {{\begin{pmatrix} A_{00} & A_{01} & A_{02} \\ A_{10} & A_{11} & A_{12} \\ A_{20} & A_{21} & A_{22} \end{pmatrix} \cdot \begin{pmatrix} {\delta\quad a_{x}} \\ {\delta\quad a_{y}} \\ {\delta\quad a_{z}} \end{pmatrix}} + {\begin{pmatrix} B_{x} \\ B_{y} \\ B_{z} \end{pmatrix} \times {\begin{pmatrix} {\delta\quad a_{x}} \\ {\delta\quad a_{y}} \\ {\delta\quad a_{z}} \end{pmatrix}.}}}$ These may be reformulated into least squares expressions as follows: ${{\frac{1}{{\,\Delta}\quad t^{2}} \cdot \begin{pmatrix} x_{x} \\ x_{y} \\ x_{z} \end{pmatrix}} = {\begin{pmatrix} {{{A_{00} \cdot \delta}\quad a_{x}} + {{A_{01} \cdot \delta}\quad a_{y}} + {{A_{02} \cdot \delta}\quad a_{z}}} \\ {{{A_{10} \cdot \delta}\quad a_{x}} + {{A_{11} \cdot \delta}\quad a_{y}} + {{A_{12} \cdot \delta}\quad a_{z}}} \\ {{{A_{20} \cdot \delta}\quad a_{x}} + {{A_{21} \cdot \delta}\quad a_{y}} + {{A_{22} \cdot \delta}\quad a_{z}}} \end{pmatrix} + \begin{pmatrix} {{{B_{y} \cdot \delta}\quad a_{z}} - {{B_{z} \cdot \delta}\quad a_{y}}} \\ {{{B_{z} \cdot \delta}\quad a_{z}} - {{B_{x} \cdot \delta}\quad a_{z}}} \\ {{{B_{x} \cdot \delta}\quad a_{y}} - {{B_{y} \cdot \delta}\quad a_{x}}} \end{pmatrix}}},{{\frac{1}{{\,\Delta}\quad t^{2}} \cdot \begin{pmatrix} x_{x} \\ x_{y} \\ x_{z} \end{pmatrix}} = \begin{pmatrix} {{{A_{00} \cdot \delta}\quad a_{x}} + {{A_{01} \cdot \delta}\quad a_{y}} + {{A_{02} \cdot \delta}\quad a_{z}} + {{B_{y} \cdot \delta}\quad a_{z}} - {{B_{z} \cdot \delta}\quad a_{y}}} \\ {{{A_{10} \cdot \delta}\quad a_{x}} + {{A_{11} \cdot \delta}\quad a_{y}} + {{A_{12} \cdot \delta}\quad a_{z}} + {{B_{z} \cdot \delta}\quad a_{x}} - {{B_{x} \cdot \delta}\quad a_{z}}} \\ {{{A_{20} \cdot \delta}\quad a_{x}} + {{A_{21} \cdot \delta}\quad a_{y}} + {{A_{22} \cdot \delta}\quad a_{z}} + {{B_{x} \cdot \delta}\quad a_{y}} - {{B_{y} \cdot \delta}\quad a_{x}}} \end{pmatrix}},{{{and}{\frac{1}{{\,\Delta}\quad t^{2}} \cdot \begin{pmatrix} x_{x} \\ x_{y} \\ x_{z} \end{pmatrix}}} = {\begin{pmatrix} A_{00} & {A_{01} - B_{z}} & {A_{02} + B_{y}} \\ {A_{10} + B_{z}} & A_{11} & {A_{12} - B_{x}} \\ {A_{20} - B_{y}} & {A_{21} + B_{x}} & A_{22} \end{pmatrix} \cdot {\begin{pmatrix} {\delta\quad a_{x}} \\ {\delta\quad a_{y}} \\ {\delta\quad a_{z}} \end{pmatrix}.}}}$ In addition, compensating for noise during other parts of a golf swing, in addition to the downswing may be necessary. Even if the correction were perfect for the downswing, there is the need to avoid error that may build up during the backswing. Accordingly, improvements along these lines may be within the scope of the novel concepts of the present disclosure.

In addition to the acceleration and orientation corrections of the disclosed subject matter, IMU 44 provides for highly accurate determination of accelerometer measurements and gyroscopic measurements using a calibration process. The calibration process takes into consideration the property that IMU 44 operates as though all accelerometer and gyroscopic measurements occur with reference to a single geometric position. Because this cannot occur in practice, measurement calibrations must take place. The calibration process of the disclosed subject matter, therefore, accounts for both position and orientation measurements that actually occur and that differ from measurements that may occur were it possible for them to occur in ideal circumstances. The calibrations associated with the disclosed subject matter are described and claimed in U.S. patent application Ser. No. ______, entitled “METHOD AND SYSTEM FOR CALIBRATING SPORTS INSTRUMENT INERTIAL MOTION SENSING SIGNALS, by Eric A. Cassady, et al. and commonly assigned with the present disclosure.

All references, including publications, patent applications, and patents, cited herein are hereby incorporated by reference to the same extent as if each reference were individually and specifically indicated to be incorporated by reference and were set forth in its entirety herein.

The use of the terms “a” and “an” and “the” and similar referents in the context of describing embodiments of the disclosure (especially in the context of the following claims) are to be construed to cover both the singular and the plural, unless otherwise indicated herein or clearly contradicted by context. The terms “comprising,” “having,” “including,” and “containing” are to be construed as open-ended terms (i.e., meaning “including, but not limited to,”) unless otherwise noted. Recitation of ranges of values herein are merely intended to serve as a shorthand method of referring individually to each separate value falling within the range, unless otherwise indicated herein, and each separate value is incorporated into the specification as if it were individually recited herein.

All methods described herein can be performed in any suitable order unless otherwise indicated herein or otherwise clearly contradicted by context. The use of any examples, or exemplary language (e.g., “such as”) provided herein, is intended merely to better illuminate embodiments of the disclosure and does not pose a limitation on the scope of the disclosure unless otherwise claimed. No language in the specification should be construed as indicating any non-claimed element as essential to the practice of the disclosure.

Preferred embodiments of this disclosure are described herein, including the best mode known to the inventors for carrying out the disclosure. Variations of those preferred embodiments may become apparent to those of ordinary skill in the art upon reading the foregoing description. The inventors expect skilled artisans to employ such variations as appropriate, and the inventors intend for the disclosure to be practiced otherwise than as specifically described herein. Accordingly, this disclosure includes all modifications and equivalents of the subject matter recited in the claims appended hereto as permitted by applicable law. Moreover, any combination of the above-described elements in all possible variations thereof is encompassed by the disclosure unless otherwise indicated herein or otherwise clearly contradicted by context. 

1. A method for analyzing a swinging motion of a sports instrument, said swinging motion for contacting an object, said sports instrument having an embedded inertial measurement unit, the method comprising the steps of: generating a plurality of signals from said inertial measurement unit, said plurality of signals comprising a plurality of gravity signals and a plurality of acceleration signals; receiving said plurality signals from said inertial measurement unit in a signal processing circuit, said signal processing circuit for analyzing said plurality of gravity signals and said plurality of acceleration signals; determining from the analysis of at least plurality of acceleration signals said sports instrument to be at a top-of-swing position relative to the object; determining from the analysis of said signals from said inertial measurement unit said sports instrument to be in a swinging motion; and determining at least from said plurality of accelerometer signals said sports instrument to be at an impact point wherein said sports instrument contacts the object.
 2. The method of claim 1, further comprising the step of determining an at-address position at which said sports instrument addresses said object.
 3. The method of claim 2, further comprising the step of identifying a narrowest parameter set wherein an interval during address for qualifying as an at-address region.
 4. The method of claim 3, further comprising the step of identifying a latest set of consecutive at-address point for establish a final at-address region.
 5. The method of claim 4, further comprising the step of identifying an optimal address point within an identified at-address region.
 6. The method of claim 5, further comprising the step of continuing to test for a new optimal address point within said at-address region.
 7. The method of claim 1, further comprising the step of determining at least from said plurality of accelerometer signals said sports instrument to be at an impact point wherein said sports instrument contacts an object having a mass approximating a whiffle golf ball.
 8. The method of claim 1, further comprising the step of determining at least from said plurality of accelerometer signals said sports instrument to be moving so as to generate a plurality of vibrating data points as said accelerometer signals.
 9. The method of claim 1, further comprising the step of determining at least from said plurality of accelerometer signals said sports instrument to be moving for generating at least on section vibrating data points as said accelerometer signals.
 10. A system for analyzing a swinging motion of a sports instrument, said swinging motion for contacting an object, said sports instrument comprising: an inertial measurement unit embedded within said sports instrument, said inertial measurement unit comprising, a gravity sensing circuit for generating a plurality of gravity signals associated with the movement os said sports instrument, and an acceleration sensing circuit for generating a plurality of acceleration signals associated with the movement os said sports instrument; a signal processing circuit for receiving said plurality signals from said inertial measurement, said signal processing circuit further for analyzing said plurality of gravity signals and said plurality of acceleration signals and generating from said analysis a sports instrument swinging motion measurement; position analysis instructions for use in association with said signal processing circuit determining from said sports instrument swinging motion measurement said sports instrument to be at a top-of-swing position relative to the object; swinging motion analysis instructions for use in association with said signal processing circuit for determining from a sports instrument swinging motion measurement said sports instrument to be in a swinging motion; and impact point analysis instructions for determining from a sports instrument swinging motion measurement for determining at least from said plurality of accelerometer signals said sports instrument to be at an impact point wherein said sports instrument contacts the object.
 11. The system of claim 10, wherein said impact point analysis instructions further comprise instructions for determining an at-address position at which said sports instrument addresses said object.
 12. The system of claim 10, wherein said impact point analysis instructions further comprise instructions for identifying a narrowest parameter set wherein an interval during address for qualifying as an at-address region.
 13. The system of claim 10, wherein said impact point analysis instructions further comprise instructions for identifying a latest set of consecutive at-address point for establish a final at-address region.
 14. The system of claim 10, wherein said impact point analysis instructions further comprise instructions for identifying an optimal address point within an identified at-address region.
 15. The system of claim 10, wherein said impact point analysis instructions further comprise instructions for continuing to test for a new optimal address point within said at-address region.
 16. The system of claim 10, wherein said impact point analysis instructions further comprise instructions for determining at least from said plurality of accelerometer signals said sports instrument to be at an impact point wherein said sports instrument contacts an object having a mass approximating a whiffle golf ball.
 17. The system of claim 10, wherein said impact point analysis instructions further comprise instructions for determining at least from said plurality of accelerometer signals said sports instrument to be moving so as to generate a plurality of vibrating data points as said accelerometer signals.
 18. The system of claim 10, wherein said impact point analysis instructions further comprise instructions for determining at least from said plurality of accelerometer signals said sports instrument to be moving for generating at least on section vibrating data points as said accelerometer signals.
 19. A method for determining an impact point at which swinging sports instrument impacts an object, said sports instrument associated with an inertial measurement unit, the method comprising the steps of: generating an acceleration measurements stream from said inertial measurement unit, said acceleration measurements stream comprising a plurality of acceleration signals from said inertial measurement unit associated with movement of the sports instrument, each of said plurality of acceleration signals corresponding to a position of said sports instrument during said movement; receiving said acceleration measurements stream in a signal processing circuit, said signal processing circuit for relating said acceleration measurements stream to movement of said sports instrument; determining the presence of a shock vibration measurement within said acceleration measurements stream; and relating said shock vibration to a position at which said sports instrument impact the object.
 20. The method of claim 19, further comprising the step of determining at least from said plurality of accelerometer signals said sports instrument to be at an impact point wherein said sports instrument contacts an object having a mass approximating a whiffle golf ball.
 21. The method of claim 19, further comprising the step of determining at least from said plurality of accelerometer signals said sports instrument to be moving so as to generate a plurality of vibrating data points as said accelerometer signals.
 22. The method of claim 19, further comprising the step of determining at least from said plurality of accelerometer signals said sports instrument to be moving for generating at least on section vibrating data points as said accelerometer signals.
 23. A system for determining an impact point at which swinging sports instrument impacts an object, said sports instrument associated with an inertial measurement unit, the method comprising the steps of: acceleration measurement circuitry for generating an acceleration measurements stream from said inertial measurement unit, said acceleration measurements stream comprising a plurality of acceleration signals from said inertial measurement unit associated with movement of the sports instrument, each of said plurality of acceleration signals corresponding to a position of said sports instrument during said movement; signal processing circuitry for receiving said acceleration measurements stream in a signal processing circuit, said signal processing circuit for relating said acceleration measurements stream to movement of said sports instrument; acceleration measurement analysis instructions for determining the presence of a shock vibration measurement within said acceleration measurements stream; and movement analysis instructions for relating said shock vibration to a position at which said sports instrument impact the object.
 20. The system of claim 19, wherein said movement analysis instructions further comprise instructions for determining at least from said plurality of accelerometer signals said sports instrument to be at an impact point wherein said sports instrument contacts an object having a mass approximating a whiffle golf ball.
 21. The system of claim 19, wherein said movement analysis instructions further comprise instructions for determining at least from said plurality of accelerometer signals said sports instrument to be moving so as to generate a plurality of vibrating data points as said accelerometer signals.
 22. The system of claim 19, wherein said movement analysis instructions further comprise instructions for determining at least from said plurality of accelerometer signals said sports instrument to be moving for generating at least on section vibrating data points as said accelerometer signals.
 23. A method for correcting swing analysis data deriving from an inertial measurement unit associated with a sports instrument, said inertial measurement unit for sensing motion of said sports instrument in impacting an object, the method comprising the steps of: generating a plurality of signals from said inertial measurement unit in response to movement of said sports instrument, said plurality of signals comprising a plurality of orientation measurements and a plurality of acceleration measurement; correcting said orientation measurements in response to rotation of said sports instrument occurring upon said sports instrument impacting the object; correcting said acceleration measurements for removing inaccuracies deriving from the orientation of at least one accelerometer and the orientation of at least one gyroscope differing from the point at which said sports instrument contacts the object.
 24. The method of claim 23, further comprising the step of performing said acceleration measurements correction step after performing at least once said orientation measurements correction step. 